Out-of-Order processing allows a processor to avoid stalling which can occur when data needed to perform an operation is unavailable. For example, an out-of-order processor may avoid a stall when the instruction is not completely ready to be processed due to missing data by filling what would otherwise be unfilled time slots with other instructions that are ready to be executed. In some cases the results might be re-ordered after execution such that it appears that the instructions were processed as normal.
In some computer systems, the processor might run substantially faster than the memory. Accordingly, the time that an in-order processor spends waiting for data to arrive could be used to process a large number of instructions using an out-of-order processor.